﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace lab02
{
    class Program
    {
        static int ParseNumber ()
        {
            int numVal;
            bool result;
            do
            {
                string str = Console.ReadLine();
                result = Int32.TryParse(str, out numVal);
                if (!result)
                {
                    Console.WriteLine("Ошибка ввода, введите число");
                }
            } while (!result);
            return numVal;


        }

        static int Power (int numberInt, int power)
        {
            int result = 1;
            int x = numberInt;
            int n = power;
            while (n != 0)
            {
                if (n % 2 != 0)
                {
                    result = result * x;
                    n = n - 1;
                }
                else
                {
                    x = x * x;
                    n = n / 2;
                }
            }
            return result;
        }

        static void WriteResult(int number, int power, int result)
        {
            Console.WriteLine("результат возведения числа {0} в степень {1} равен {2}", number, power, result);
        }
        static void Main(string[] args)
        {
            Console.WriteLine("введите число");
            int number = Program.ParseNumber();
            Console.WriteLine("введите степень");
            int power = Program.ParseNumber();
            int result = Program.Power(number, power);
            Program.WriteResult(number,power,result);
            Console.ReadKey();
        }
    }
}
